package com.hdu.xxl_job_client.req.job;

import com.hdu.xxl_job_client.annotation.JsonField;
import com.hdu.xxl_job_client.enums.ExecutorBlockStrategyEnum;
import com.hdu.xxl_job_client.enums.ExecutorRouteStrategyEnum;
import com.hdu.xxl_job_client.enums.MisfireStrategyEnum;
import com.hdu.xxl_job_client.enums.ScheduleTypeEnum;
import lombok.Data;

@Data
public class XxlJobUpdateReq {
    /**
     * 执行器名称
     */
    private String jobGroupAppname;
    /**
     * 任务描述
     */
    private String jobDesc;
    /**
     * 任务创建者
     */
    private String author;
    /**
     * 告警邮箱
     */
    private String alarmEmail;
    /**
     * 调度类型
     *
     * @see ScheduleTypeEnum
     */
    private ScheduleTypeEnum scheduleType;
    /**
     * Corn相关配置
     */
    private String scheduleConf;
    @JsonField("cronGen_display")
    private String cronGenDisplay;
    @JsonField("schedule_conf_CRON")
    private String scheduleConfCron;
    /**
     * FixRate 相关配置
     */
    @JsonField("schedule_conf_FIX_RATE")
    private String scheduleConfFixRate;
    /**
     * FIX_DELAY相关配置
     */
    @JsonField("schedule_conf_FIX_DELAY")
    private String scheduleConfFixDelay;
    /**
     * 运行模式 默认只支持 BEAN
     */
    private String glueType;
    /**
     * executorHandler
     */
    private String executorHandler;
    /**
     * 执行参数
     */
    private String executorParam;
    /**
     * 路由策略
     *
     * @see ExecutorRouteStrategyEnum
     */
    private ExecutorRouteStrategyEnum executorRouteStrategy;
    /***
     * 调度过期策略
     * @see MisfireStrategyEnum
     */
    private MisfireStrategyEnum misfireStrategy;
    /**
     * 阻塞处理策略
     *
     * @see ExecutorBlockStrategyEnum
     */
    private ExecutorBlockStrategyEnum executorBlockStrategy;
    /**
     * 任务超时时间
     */
    private int executorTimeout;
    /**
     * 任务重试次数
     */
    private int executorFailRetryCount;
    private String glueRemark;
    private String glueSource;
}
